/* Speicherverwaltung (Codename "Svante August Arrhenius") */
#ifndef __KMEM_H__
#define __KMEM_H__


#define MEMORYLENGTH 4194304
//Definiert ein 4Mbyte großes Array für die Speicherverwaltung

unsigned int mapping[MEMORYLENGTH/1024];
unsigned char memory[MEMORYLENGTH]; 


/**
 * kmalloc gibt ein Speicherstueck mit mindestens der gegebenen
 * Groesse zurueck. Sollte nicht genuegend Speicher zu Verfuegung
 * stehen, wird NULL zurueckgegeben
 */
void *kmalloc( unsigned long size );

/**
 * kfree gibt ein gegebenes Speicherstueck wieder frei.
 */
void kfree( void *mem, unsigned long size );

/**
 * kmem_init initialisiert die Kernspeicherverwaltung und gibt
 * bei einem Fehler 0 zurueck
 */ 
int kmem_init();

#endif
